package gang.com.twoshopping.html;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;

import gang.com.twoshopping.R;

public class Hunhe extends AppCompatActivity implements View.OnClickListener {
    private WebView mWebView;
    private Button button;
private WebAPPInterface mwebappInterface;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hunhe);
        mWebView = (WebView) findViewById(R.id.webview);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(this);
        mWebView.loadUrl("file:///android_asset/index.html");
        mWebView.getSettings().setJavaScriptEnabled(true);
        //把接口添加进来
        mwebappInterface=new WebAPPInterface(this);
        mWebView.addJavascriptInterface(mwebappInterface, "app");
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                mwebappInterface.showName("啦啦啦");
                break;
        }
    }

    /**
     * 这里面需要两个方法，javascript调用本地的，本地的调用javascript的
     */
    class WebAPPInterface {
        private Context context;

        public WebAPPInterface(Context context) {
            this.context = context;
        }

        /**
         * Android开发要担心的是把这个接口写好，让前端人来调用，大多数公司html是前端人进行完成的
         * 简单的说就是Android给他们暴露一些接口让他们进行调用
         *
         * @param name
         */
        //javascript调用本地的
        @JavascriptInterface
        public void say_hello(String name) {
            Toast.makeText(context, "name=" + name, Toast.LENGTH_LONG).show();
        }

        //第二个方法Android调用javasctipt中的方法
        private void showName(final String name)
        {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mWebView.loadUrl("javascript:showName('"+name+"')");
                }
            });
        }

    }
}
